import axios from 'axios'

// 创建axios实例
const api = axios.create({
    baseURL: '/api',  // 使用代理路径
    timeout: 30000,
    headers: {
        'Content-Type': 'application/json'
    }
})

// 请求拦截器
api.interceptors.request.use(
    config => {
        return config
    },
    error => {
        return Promise.reject(error)
    }
)

// 响应拦截器
api.interceptors.response.use(
    response => {
        return response.data
    },
    error => {
        console.error('API请求错误:', error)
        return Promise.reject(error)
    }
)

// API接口定义
export const roleAPI = {
    // 获取所有角色
    getAllRoles() {
        return api.get('/api/roles')
    },

    // 搜索角色
    searchRoles(keyword) {
        return api.get('/api/roles/search', {
            params: { keyword }
        })
    }
}

export const chatAPI = {
    // 创建SSE连接进行流式聊天
    createSSEConnection(roleId, message, chatId, voice = null, useSkill = false) {
        // 直接连接后端，绕过代理
        const url = new URL(`/api/api/roles/${roleId}/chat/sse`, 'http://localhost:8123')

        // 确保消息正确编码
        url.searchParams.append('message', message)

        if (chatId) {
            url.searchParams.append('chatId', chatId)
        }

        // 添加音色参数（如果指定）
        if (voice) {
            url.searchParams.append('voice', voice)
        }

        // 添加技能参数
        if (useSkill) {
            url.searchParams.append('useSkill', 'true')
        }

        console.log('创建SSE连接，URL:', url.toString())

        // 创建EventSource，直接连接后端
        const eventSource = new EventSource(url.toString())

        return eventSource
    }
}

export default api
